React์ ๋์์ฑ ๋ ๋๋ง ์ค์ผ์ค๋ฌ์ ๊ณ ์ฑ๋ฅ์ ๋ฐ์ํ ๊ธ๋ก๋ฒ ์ ํ๋ฆฌ์ผ์ด์ ๊ตฌ์ถ์ ์ํ ์ ๊ตํ ํ๋ ์ ์๊ฐ ์์ฐ ๊ด๋ฆฌ ๊ธฐ๋ฒ์ ๋ํ ์ฌ์ธต ํ๊ตฌ.
React์ ๋์์ฑ ๋ ๋๋ง ์ค์ผ์ค๋ฌ ๋ง์คํฐํ๊ธฐ: ํ๋ ์ ์๊ฐ ์์ฐ ๊ด๋ฆฌ
๋์์์ด ์งํํ๋ ์น ๊ฐ๋ฐ ํ๊ฒฝ์์, ๋งค๋๋ฝ๊ณ ๋ฐ์์ฑ ์ข์ ์ฌ์ฉ์ ๊ฒฝํ(UX)์ ์ ๊ณตํ๋ ๊ฒ์ ๋ฌด์๋ณด๋ค ์ค์ํฉ๋๋ค. ์ ์ธ๊ณ ์ฌ์ฉ์๋ ์์ ์ ๊ธฐ๊ธฐ, ๋คํธ์ํฌ ์ํ, UI์ ๋ณต์ก์ฑ์ ๊ด๊ณ์์ด ์ ํ๋ฆฌ์ผ์ด์ ์ด ๋น ๋ฅด๊ณ , ๋ถ๋๋ฝ๊ณ , ์ํธ์์ฉ์ ์ด๊ธฐ๋ฅผ ๊ธฐ๋ํฉ๋๋ค. ํ๋์ ์๋ฐ์คํฌ๋ฆฝํธ ํ๋ ์์ํฌ, ํนํ React๋ ์ด๋ฌํ ์๊ตฌ๋ฅผ ํด๊ฒฐํ๋ ๋ฐ ์๋นํ ์ง์ ์ ์ด๋ฃจ์์ต๋๋ค. ์ด๋ฅผ ๊ฐ๋ฅํ๊ฒ ํ๋ React์ ํต์ฌ์๋ ์ ๊ตํ ๋์์ฑ ๋ ๋๋ง ์ค์ผ์ค๋ฌ(Concurrent Rendering Scheduler)๊ฐ ์์ผ๋ฉฐ, ์ด๋ ๋ ๋๋ง ์์ ์ ๋ ์ง๋ฅ์ ์ผ๋ก ๊ด๋ฆฌํ๊ณ ๊ฒฐ์ ์ ์ผ๋ก ํ๋ ์ ์๊ฐ ์์ฐ(Frame Time Budget)์ ๊ด๋ฆฌํ ์ ์๊ฒ ํด์ฃผ๋ ๊ฐ๋ ฅํ ๋ฉ์ปค๋์ฆ์ ๋๋ค.
์ด ์ข ํฉ ๊ฐ์ด๋์์๋ React์ ๋์์ฑ ๋ ๋๋ง ์ค์ผ์ค๋ฌ์ ๋ณต์ก์ฑ์ ๊น์ด ํ๊ณ ๋ค์ด, ํนํ ํ๋ ์ ์๊ฐ ์์ฐ์ ์ด๋ป๊ฒ ๊ด๋ฆฌํ๋์ง์ ์ด์ ์ ๋ง์ถ ๊ฒ์ ๋๋ค. ์ฐ๋ฆฌ๋ ๊ทธ ๊ธฐ๋ณธ ์๋ฆฌ, ํด๊ฒฐํ๋ ๋ฌธ์ ์ , ๊ทธ๋ฆฌ๊ณ ๊ฐ๋ฐ์๊ฐ ์ด ๊ธฐ๋ฅ์ ํ์ฉํ์ฌ ๊ณ ์ฑ๋ฅ์ ์ ์ธ๊ณ์ ์ผ๋ก ์ ๊ทผ ๊ฐ๋ฅํ ์ ํ๋ฆฌ์ผ์ด์ ์ ๊ตฌ์ถํ๊ธฐ ์ํ ์ค์ฉ์ ์ธ ์ ๋ต์ ํ๊ตฌํ ๊ฒ์ ๋๋ค.
ํ๋ ์ ์๊ฐ ์์ฐ ๊ด๋ฆฌ์ ์ค์์ฑ
React์ ๊ตฌ์ฒด์ ์ธ ๊ตฌํ์ ์ดํด๋ณด๊ธฐ ์ ์, ์ ํ๋ ์ ์๊ฐ ์์ฐ ๊ด๋ฆฌ๊ฐ ํ๋ ์น ์ ํ๋ฆฌ์ผ์ด์ ์ ๊ทธํ ๋ก ์ค์ํ์ง ์ดํดํ๋ ๊ฒ์ด ํ์์ ์ ๋๋ค. "ํ๋ ์"์ด๋ผ๋ ๊ฐ๋ ์ ๋จ์ผ ํ๋ฉด ์๋ก๊ณ ์นจ์ ์๋ฏธํฉ๋๋ค. ๋๋ถ๋ถ์ ๋์คํ๋ ์ด์์ ์ด๋ ์ด๋น 60ํ ๋ฐ์ํ๋ฉฐ, ์ด๋ ๊ฐ ํ๋ ์์ด ๋ ๋๋ง๋๋ ๋ฐ ์ฝ 16.67๋ฐ๋ฆฌ์ด(ms)์ ์๊ฐ์ด ์๋ค๋ ๊ฒ์ ์๋ฏธํฉ๋๋ค. ์ด๊ฒ์ด ๋ฐ๋ก ํํ ๋งํ๋ 16ms ์์ฐ์ ๋๋ค.
๋ง์ฝ ์น ์ ํ๋ฆฌ์ผ์ด์ ์ด ํ๋ ์์ ๋ ๋๋งํ๋ ๋ฐ ์ด ์์ฐ๋ณด๋ค ์ค๋ ๊ฑธ๋ฆฌ๋ฉด, ๋ธ๋ผ์ฐ์ ๋ ํด๋น ํ๋ ์์ "๋๋กญ"ํ๊ฒ ๋์ด ๋ฒ๋ฒ ๊ฑฐ๋ฆฌ๊ฑฐ๋, ๋๊ธฐ๊ฑฐ๋, ๋ฐ์์ด ์๋ UI๋ฅผ ์ด๋ํฉ๋๋ค. ์ด๋ ์ฌ์ฉ์๊ฐ ์ฆ์ ์์์ฐจ๋ฆฌ๊ณ ๋ต๋ตํจ์ ๋๋ผ๊ฒ ๋๋ฉฐ, ํนํ ์ ๋๋ฉ์ด์ , ์คํฌ๋กค๋ง, ๋๋ ํผ ์ ๋ ฅ๊ณผ ๊ฐ์ ์ํธ์์ฉ์ ์ธ ์ปดํฌ๋ํธ์์ ๋์ฑ ๊ทธ๋ ์ต๋๋ค.
์ ํต์ ์ธ ๋ ๋๋ง์ ๋ฌธ์ ์ :
- ์ฅ๊ธฐ ์คํ ์์ : ๋์์ฑ ์ด์ ์๋์ React(๊ทธ๋ฆฌ๊ณ ๋ง์ ๋ค๋ฅธ ํ๋ ์์ํฌ๋ค)๋ ๋จ์ผ ๋๊ธฐ ์ค๋ ๋์์ ์๋ํ์ต๋๋ค. ๋ง์ฝ ์ปดํฌ๋ํธ์ ๋ ๋๋ง์ด ๋๋ฌด ์ค๋ ๊ฑธ๋ฆฌ๋ฉด, ๋ฉ์ธ ์ค๋ ๋๋ฅผ ์ฐจ๋จํ์ฌ ๋ ๋๋ง์ด ์๋ฃ๋ ๋๊น์ง ์ฌ์ฉ์ ์ํธ์์ฉ(ํด๋ฆญ์ด๋ ํ์ดํ ๋ฑ)์ด ์ฒ๋ฆฌ๋๋ ๊ฒ์ ๋ง์์ต๋๋ค.
- ์์ธก ๋ถ๊ฐ๋ฅํ ์ฑ๋ฅ: ๋ ๋๋ง ์ฑ๋ฅ์ ๋งค์ฐ ์์ธกํ๊ธฐ ์ด๋ ค์ ์ต๋๋ค. ๋ฐ์ดํฐ๋ UI ๋ณต์ก์ฑ์ ์์ ๋ณํ๊ฐ ๋ ๋๋ง ์๊ฐ์ ํฌ๊ฒ ๋ฌ๋ผ์ง๊ฒ ๋ง๋ค์ด, ๋ถ๋๋ฌ์ด ๊ฒฝํ์ ๋ณด์ฅํ๊ธฐ ์ด๋ ค์ ์ต๋๋ค.
- ์ฐ์ ์์์ ๋ถ์ฌ: ๋ชจ๋ ๋ ๋๋ง ์์ ์ ๋์ผํ ์ค์๋๋ก ์ฒ๋ฆฌ๋์์ต๋๋ค. ๊ธด๊ธํ ์ ๋ฐ์ดํธ(์: ์ฌ์ฉ์ ์ ๋ ฅ)๋ฅผ ๋ ์ค์ํ ์ ๋ฐ์ดํธ(์: ๋ฐฑ๊ทธ๋ผ์ด๋ ๋ฐ์ดํฐ ๊ฐ์ ธ์ค๊ธฐ)๋ณด๋ค ์ฐ์ ์ฒ๋ฆฌํ๋ ๋ด์ฌ์ ์ธ ๋ฉ์ปค๋์ฆ์ด ์์์ต๋๋ค.
์ด๋ฌํ ๋ฌธ์ ๋ค์ ๊ธ๋ก๋ฒ ์ปจํ ์คํธ์์ ๋์ฑ ์ฆํญ๋ฉ๋๋ค. ์ธํฐ๋ท ์ธํ๋ผ๊ฐ ๋ ๊ฒฌ๊ณ ํ๊ฑฐ๋ ๊ตฌํ ๊ธฐ๊ธฐ๋ฅผ ์ฌ์ฉํ๋ ์ง์ญ์์ ์ ํ๋ฆฌ์ผ์ด์ ์ ์ ๊ทผํ๋ ์ฌ์ฉ์๋ค์ ํจ์ฌ ๋ ํฐ ์ฅ์ ๋ฌผ์ ์ง๋ฉดํฉ๋๋ค. ์ ๋๋ก ๊ด๋ฆฌ๋์ง ์๋ ํ๋ ์ ์๊ฐ ์์ฐ์ ์ ์ธ๊ณ ์ฌ์ฉ์ ๊ธฐ๋ฐ์ ์๋น ๋ถ๋ถ์๊ฒ ์ ํ๋ฆฌ์ผ์ด์ ์ ๊ฑฐ์ ์ฌ์ฉํ ์ ์๊ฒ ๋ง๋ค ์ ์์ต๋๋ค.
React์ ๋์์ฑ ๋ ๋๋ง ์๊ฐ
React ๋์์ฑ ๋ชจ๋(ํ์ฌ React 18์ ๊ธฐ๋ณธ๊ฐ)๋ React๊ฐ ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ ๋๋งํ๋ ๋ฐฉ์์ ๊ทผ๋ณธ์ ์ธ ๋ณํ๋ฅผ ๊ฐ์ ธ์์ต๋๋ค. ํต์ฌ ์์ด๋์ด๋ React๊ฐ ๋ ๋๋ง์ ์ค๋จ, ์ผ์ ์ค์ง, ์ฌ๊ฐํ ์ ์๋๋ก ํ๋ ๊ฒ์ ๋๋ค. ์ด๋ ๋ธ๋ผ์ฐ์ ์ ๋ ๋๋ง ํ์ดํ๋ผ์ธ์ ์ธ์งํ๊ณ ๊ทธ์ ๋ฐ๋ผ ์์ ์ ์ฐ์ ์์๋ฅผ ์ ํ ์ ์๋ ์๋ก์ด ์ค์ผ์ค๋ฌ๋ฅผ ํตํด ๋ฌ์ฑ๋ฉ๋๋ค.
์ฃผ์ ๊ฐ๋ :
- ์๊ฐ ๋ถํ (Time Slicing): ์ค์ผ์ค๋ฌ๋ ํฌ๊ณ ๋๊ธฐ์ ์ธ ๋ ๋๋ง ์์ ์ ๋ ์์ ๋ฉ์ด๋ฆฌ๋ก ๋๋๋๋ค. ์ด ๋ฉ์ด๋ฆฌ๋ค์ ์ฌ๋ฌ ํ๋ ์์ ๊ฑธ์ณ ์คํ๋ ์ ์์ผ๋ฉฐ, ์ด๋ฅผ ํตํด React๋ ๋ฉ์ด๋ฆฌ ์ฌ์ด์์ ๋ธ๋ผ์ฐ์ ์ ์ ์ด๊ถ์ ์๋ณดํ ์ ์์ต๋๋ค. ์ด๋ ๋ฉ์ธ ์ค๋ ๋๊ฐ ์ฌ์ฉ์ ์ํธ์์ฉ ๋ฐ ์ด๋ฒคํธ ์ฒ๋ฆฌ์ ๊ฐ์ ์ค์ํ ์์ ์ ์ํด ๊ณ์ ์ฌ์ฉ ๊ฐ๋ฅํ๋๋ก ๋ณด์ฅํฉ๋๋ค.
- ์ฌ์ง์ ์ฑ(Re-entrancy): React๋ ์ด์ ์ปดํฌ๋ํธ์ ์๋ช ์ฃผ๊ธฐ ์ค๊ฐ์ ๋ ๋๋ง์ ์ผ์ ์ค์งํ๊ณ ๋์ค์, ์ ์ฌ์ ์ผ๋ก ๋ค๋ฅธ ์์๋ก๋ ๋ค๋ฅธ ์์ ์ด ์๋ฃ๋ ํ์ ์ฌ๊ฐํ ์ ์์ต๋๋ค. ์ด๋ ๋ค์ํ ์ ํ์ ์ ๋ฐ์ดํธ๋ฅผ ๋ผ์ ๋ฃ๋ ๋ฐ ์ค์ํฉ๋๋ค.
- ์ฐ์ ์์(Priorities): ์ค์ผ์ค๋ฌ๋ ๋ค์ํ ๋ ๋๋ง ์์ ์ ์ฐ์ ์์๋ฅผ ํ ๋นํฉ๋๋ค. ์๋ฅผ ๋ค์ด, ๊ธด๊ธํ ์ ๋ฐ์ดํธ(์: ์ ๋ ฅ ํ๋์ ํ์ดํ)๋ ๋ ๊ธด๊ธํ ์ ๋ฐ์ดํธ(์: API์์ ๊ฐ์ ธ์จ ๋ชฉ๋ก ์ ๋ฐ์ดํธ)๋ณด๋ค ๋์ ์ฐ์ ์์๋ฅผ ๋ฐ์ต๋๋ค.
ํต์ฌ์ ์ผ๋ก, ๋์์ฑ ๋ ๋๋ง์ ์์ ์ ์ง๋ฅ์ ์ผ๋ก ์ค์ผ์ค๋งํ๊ณ ๋ถํ ํ์ฌ ํ๋ ์ ์๊ฐ ์์ฐ์ ๊ด๋ฆฌํ๋ ๊ฒ์ ๊ดํ ๊ฒ์ ๋๋ค.
React ์ค์ผ์ค๋ฌ: ๋์์ฑ ๋ ๋๋ง์ ์์ง
React ์ค์ผ์ค๋ฌ๋ ๋์์ฑ ๋ ๋๋ง์ ๋ฐฐํ ์งํ์์
๋๋ค. ์ธ์ ๋ ๋๋งํ ์ง, ๋ฌด์์ ๋ ๋๋งํ ์ง, ๊ทธ๋ฆฌ๊ณ ํ๋ ์ ์๊ฐ ์์ฐ์ ๋ง์ถ๊ธฐ ์ํด ์์
์ ์ด๋ป๊ฒ ๋ถํ ํ ์ง๋ฅผ ๊ฒฐ์ ํ๋ ์ฑ
์์ ์ง๋๋ค. ์ด๋ ๋ธ๋ผ์ฐ์ ์ requestIdleCallback ๋ฐ requestAnimationFrame API์ ์ํธ์์ฉํ์ฌ ์์
์ ํจ์จ์ ์ผ๋ก ์ค์ผ์ค๋งํฉ๋๋ค.
์๋ ๋ฐฉ์:
- ์์ ํ: ์ค์ผ์ค๋ฌ๋ ์์ (์: ์ปดํฌ๋ํธ ์ ๋ฐ์ดํธ, ์ด๋ฒคํธ ํธ๋ค๋ฌ)์ ํ๋ฅผ ์ ์งํฉ๋๋ค.
- ์ฐ์ ์์ ์์ค: ๊ฐ ์์ ์๋ ์ฐ์ ์์ ์์ค์ด ํ ๋น๋ฉ๋๋ค. React๋ ๊ฐ์ฅ ๋์ ์์ค(์: ์ฌ์ฉ์ ์ ๋ ฅ)๋ถํฐ ๊ฐ์ฅ ๋ฎ์ ์์ค(์: ๋ฐฑ๊ทธ๋ผ์ด๋ ๋ฐ์ดํฐ ๊ฐ์ ธ์ค๊ธฐ)๊น์ง ์ด์ฐ์ ์ธ ์ฐ์ ์์ ์์ค ์์คํ ์ ๊ฐ์ง๊ณ ์์ต๋๋ค.
- ์ค์ผ์ค๋ง ๊ฒฐ์ : ๋ธ๋ผ์ฐ์ ๊ฐ ์ ํด ์ํ์ผ ๋(์ฆ, ํ๋ ์ ์์ฐ ๋ด์ ์๊ฐ์ด ์์ ๋), ์ค์ผ์ค๋ฌ๋ ํ์์ ๊ฐ์ฅ ์ฐ์ ์์๊ฐ ๋์ ์์ ์ ์ ํํ์ฌ ์คํ์ ์ค์ผ์ค๋งํฉ๋๋ค.
- ์๊ฐ ๋ถํ ์คํ: ๋ง์ฝ ์์ ์ด ํ์ฌ ํ๋ ์์ ๋จ์ ์๊ฐ ๋ด์ ์๋ฃํ๊ธฐ์ ๋๋ฌด ํฌ๋ค๋ฉด, ์ค์ผ์ค๋ฌ๋ ๊ทธ๊ฒ์ "๋ถํ "ํฉ๋๋ค. ์์ ์ ์ผ๋ถ๋ฅผ ์ํํ ๋ค์ ๋ธ๋ผ์ฐ์ ์ ์๋ณดํ๊ณ , ๋๋จธ์ง ์์ ์ ๋ค์ ํ๋ ์์ ์ํด ์ค์ผ์ค๋งํฉ๋๋ค.
- ์ค๋จ ๋ฐ ์ฌ๊ฐ: ๋ฎ์ ์ฐ์ ์์์ ์์ ์ด ์ฒ๋ฆฌ๋๋ ๋์ ๋ ๋์ ์ฐ์ ์์์ ์์ ์ด ๋ฐ์ํ๋ฉด, ์ค์ผ์ค๋ฌ๋ ๋ฎ์ ์ฐ์ ์์์ ์์ ์ ์ค๋จํ๊ณ , ๋์ ์ฐ์ ์์์ ์์ ์ ์ฒ๋ฆฌํ ๋ค์, ์ค๋จ๋ ์์ ์ ๋์ค์ ์ฌ๊ฐํ ์ ์์ต๋๋ค.
์ด ๋์ ์ธ ์ค์ผ์ค๋ง์ React๊ฐ ๊ฐ์ฅ ์ค์ํ ์ ๋ฐ์ดํธ๊ฐ ๋จผ์ ์ฒ๋ฆฌ๋๋๋ก ๋ณด์ฅํ์ฌ ๋ฉ์ธ ์ค๋ ๋๊ฐ ์ฐจ๋จ๋๋ ๊ฒ์ ๋ฐฉ์งํ๊ณ UI์ ๋ฐ์์ฑ์ ์ ์งํ ์ ์๊ฒ ํฉ๋๋ค.
์ค์ ์์์ ํ๋ ์ ์๊ฐ ์์ฐ ๊ด๋ฆฌ ์ดํดํ๊ธฐ
์ค์ผ์ค๋ฌ์ ์ฃผ๋ ๋ชฉํ๋ ๋ ๋๋ง ์์ ์ด ์ฌ์ฉ ๊ฐ๋ฅํ ํ๋ ์ ์๊ฐ์ ์ด๊ณผํ์ง ์๋๋ก ํ๋ ๊ฒ์ ๋๋ค. ์ฌ๊ธฐ์๋ ๋ช ๊ฐ์ง ํต์ฌ ์ ๋ต์ด ํฌํจ๋ฉ๋๋ค:
1. ์์ ์ ์๊ฐ ๋ถํ
React๊ฐ ํฐ ์ปดํฌ๋ํธ ํธ๋ฆฌ๋ฅผ ๋ ๋๋งํ๊ฑฐ๋ ๋ณต์กํ ์ํ ์ ๋ฐ์ดํธ๋ฅผ ์ฒ๋ฆฌํ๋ ๊ฒ๊ณผ ๊ฐ์ ์ค์ํ ๋ ๋๋ง ์์ ์ ์ํํด์ผ ํ ๋ ์ค์ผ์ค๋ฌ๊ฐ ๊ฐ์ ํฉ๋๋ค. ์ ์ฒด ์์ ์ ํ ๋ฒ์ ์๋ฃํ๋ ๋์ (์ด๋ ์์ญ ๋ฐ๋ฆฌ์ด๊ฐ ๊ฑธ๋ ค 16ms ์์ฐ์ ์ด๊ณผํ ์ ์์), ์์ ์ ๋ ์์ ๋จ์๋ก ๋๋๋๋ค.
์์: ๋ ๋๋งํด์ผ ํ ํฐ ํญ๋ชฉ ๋ชฉ๋ก์ ์์ํด ๋ณด์ธ์. ๋๊ธฐ ๋ชจ๋ธ์์๋ React๊ฐ ๋ชจ๋ ํญ๋ชฉ์ ํ ๋ฒ์ ๋ ๋๋งํ๋ ค๊ณ ์๋ํ ๊ฒ์ ๋๋ค. ๋ง์ฝ ์ด๊ฒ์ด 50ms๊ฐ ๊ฑธ๋ฆฐ๋ค๋ฉด, ๊ทธ ์๊ฐ ๋์ UI๋ ๋ฉ์ถ๊ฒ ๋ฉ๋๋ค. ์๊ฐ ๋ถํ ์ ์ฌ์ฉํ๋ฉด, React๋ ์ฒ์ 10๊ฐ ํญ๋ชฉ์ ๋ ๋๋งํ ๋ค์ ์๋ณดํ ์ ์์ต๋๋ค. ๋ค์ ํ๋ ์์์๋ ๋ค์ 10๊ฐ๋ฅผ ๋ ๋๋งํ๋ ์์ ๋๋ค. ์ด๋ ์ฌ์ฉ์๊ฐ ๋ชฉ๋ก์ด ์ ์ง์ ์ผ๋ก ๋ํ๋๋ ๊ฒ์ ๋ณด๊ฒ ๋์ง๋ง, ๊ทธ ๊ณผ์ ๋ด๋ด UI๋ ๋ฐ์์ฑ์ ์ ์งํ๋ค๋ ๊ฒ์ ์๋ฏธํฉ๋๋ค.
์ค์ผ์ค๋ฌ๋ ๊ฒฝ๊ณผ ์๊ฐ์ ์ง์์ ์ผ๋ก ๋ชจ๋ํฐ๋งํฉ๋๋ค. ๋ง์ฝ ํ๋ ์ ์์ฐ์ ๋์ ๊ฐ๊น์์ง๊ณ ์๋ค๊ณ ๊ฐ์งํ๋ฉด, ํ์ฌ ์์ ์ ์ผ์ ์ค์งํ๊ณ ๋๋จธ์ง๋ ๋ค์ ๊ฐ๋ฅํ ๊ธฐํ์ ์ค์ผ์ค๋งํ ๊ฒ์ ๋๋ค.
2. ์ ๋ฐ์ดํธ ์ฐ์ ์์ ์ง์
React์ ์ค์ผ์ค๋ฌ๋ ๋ค์ํ ์ ํ์ ์ ๋ฐ์ดํธ์ ๋ค๋ฅธ ์ฐ์ ์์ ์์ค์ ํ ๋นํฉ๋๋ค. ์ด๋ฅผ ํตํด ๋ ์ค์ํ ์์ ์ ๋ ์ค์ํ ์ ๋ฐ์ดํธ๋ฅผ ์ํด ๋ฏธ๋ฃฐ ์ ์์ต๋๋ค.
์ฐ์ ์์ ์์ค(๊ฐ๋ ):
- `Immediate` (์ต์): ์ฆ๊ฐ์ ์ธ ํผ๋๋ฐฑ์ด ํ์ํ ์ฌ์ฉ์ ์ ๋ ฅ๊ณผ ๊ฐ์ ๊ฒ๋ค์ ์ํ ๊ฒ์ ๋๋ค.
- `UserBlocking` (๋์): ๋ชจ๋ฌ์ด ๋ํ๋๊ฑฐ๋ ํผ ์ ์ถ์ด ํ์ธ๋๋ ๊ฒ๊ณผ ๊ฐ์ด ์ฌ์ฉ์๊ฐ ๊ธฐ๋ค๋ฆฌ๋ ์ค์ํ UI ์ ๋ฐ์ดํธ๋ฅผ ์ํ ๊ฒ์ ๋๋ค.
- `Normal` (์ค๊ฐ): ์ฆ์ ๋ณด์ด์ง ์๋ ํญ๋ชฉ ๋ชฉ๋ก ๋ ๋๋ง๊ณผ ๊ฐ์ ๋ ์ค์ํ ์ ๋ฐ์ดํธ๋ฅผ ์ํ ๊ฒ์ ๋๋ค.
- `Low` (๋ฎ์): ์ฆ๊ฐ์ ์ธ ์ฌ์ฉ์ ์ํธ์์ฉ์ ์ง์ ์ ์ธ ์ํฅ์ ๋ฏธ์น์ง ์๋ ๋ฐ์ดํฐ ๊ฐ์ ธ์ค๊ธฐ์ ๊ฐ์ ๋ฐฑ๊ทธ๋ผ์ด๋ ์์ ์ ์ํ ๊ฒ์ ๋๋ค.
- `Offscreen` (์ตํ): ํ์ฌ ์ฌ์ฉ์์๊ฒ ๋ณด์ด์ง ์๋ ์ปดํฌ๋ํธ๋ฅผ ์ํ ๊ฒ์ ๋๋ค.
๋์ ์ฐ์ ์์์ ์ ๋ฐ์ดํธ(์: ์ฌ์ฉ์๊ฐ ๋ฒํผ์ ํด๋ฆญ)๊ฐ ๋ฐ์ํ๋ฉด, ์ค์ผ์ค๋ฌ๋ ์งํ ์ค์ผ ์ ์๋ ๋ชจ๋ ๋ฎ์ ์ฐ์ ์์์ ์์ ์ ์ฆ์ ์ค๋จํฉ๋๋ค. ์ด๋ UI๊ฐ ์ฌ์ฉ์ ํ๋์ ์ฆ์ ๋ฐ์ํ๋๋ก ๋ณด์ฅํ๋ฉฐ, ๋ค์ํ ๋คํธ์ํฌ ์๋์ ๊ธฐ๊ธฐ ์ฑ๋ฅ์ ๊ฐ์ง ๋ค์ํ ์ธ๊ตฌ๊ฐ ์ฌ์ฉํ๋ ์ ํ๋ฆฌ์ผ์ด์ ์ ๋งค์ฐ ์ค์ํฉ๋๋ค.
3. ๋์์ฑ ๊ธฐ๋ฅ๊ณผ ๊ทธ ์ํฅ
React 18์ ๋์์ฑ ๋ ๋๋ง๊ณผ ๊ทธ ํ๋ ์ ์๊ฐ ์์ฐ ๊ด๋ฆฌ ๋ฅ๋ ฅ์ ํ์ฉํ๋ ์ฌ๋ฌ ๊ธฐ๋ฅ์ ๋์ ํ์ต๋๋ค:
startTransition: ์ด API๋ฅผ ์ฌ์ฉํ๋ฉด ํน์ ์ํ ์ ๋ฐ์ดํธ๋ฅผ "์ ํ(transition)"์ผ๋ก ํ์ํ ์ ์์ต๋๋ค. ์ ํ์ UI๋ฅผ ์ฐจ๋จํ ํ์๊ฐ ์๋ ๊ธด๊ธํ์ง ์์ ์ ๋ฐ์ดํธ์ ๋๋ค. ์ด๋ ํฐ ๋ชฉ๋ก์ ํํฐ๋งํ๊ฑฐ๋ ํ์ด์ง ๊ฐ์ ์ด๋ํ๋ ๊ฒ๊ณผ ๊ฐ์ด UI ์ ๋ฐ์ดํธ์ ์ฝ๊ฐ์ ์ง์ฐ์ด ํ์ฉ๋๋ ์์ ์ ์๋ฒฝํฉ๋๋ค. ์ค์ผ์ค๋ฌ๋ UI ๋ฐ์์ฑ์ ์ ์งํ๋ ๊ฒ์ ์ฐ์ ์ํ๊ณ ์ ํ ์ ๋ฐ์ดํธ๋ฅผ ๋ฐฑ๊ทธ๋ผ์ด๋์์ ๋ ๋๋งํ ๊ฒ์ ๋๋ค.useDeferredValue:startTransition๊ณผ ์ ์ฌํ๊ฒ,useDeferredValue๋ UI์ ์ผ๋ถ ์ ๋ฐ์ดํธ๋ฅผ ์ง์ฐ์ํฌ ์ ์๊ฒ ํด์ค๋๋ค. ์ด๋ ์ฌ์ฉ์ ๊ฒฝํ์ ๋ถ์ ์ ์ธ ์ํฅ์ ์ฃผ์ง ์๊ณ ์ง์ฐ๋ ์ ์๋ ๋น์ฉ์ด ๋ง์ด ๋๋ ๊ณ์ฐ์ด๋ ๋ ๋๋ง์ ์ ์ฉํฉ๋๋ค. ์๋ฅผ ๋ค์ด, ์ฌ์ฉ์๊ฐ ๊ฒ์ ์์์ ์ ๋ ฅํ๋ ๊ฒฝ์ฐ, ์ฌ์ฉ์๊ฐ ํ์ดํ์ ๋ง์น๊ฑฐ๋ ์ ์ ๋ฉ์ถ ๋๊น์ง ๊ฒ์ ๊ฒฐ๊ณผ ๋ ๋๋ง์ ์ง์ฐ์ํฌ ์ ์์ต๋๋ค.- ์๋ ๋ฐฐ์น(Automatic Batching): ์ด์ ๋ฒ์ ์ React์์๋ ์ด๋ฒคํธ ํธ๋ค๋ฌ ๋ด์ ์ฌ๋ฌ ์ํ ์ ๋ฐ์ดํธ๊ฐ ํจ๊ป ๋ฐฐ์น๋์์ต๋๋ค. ๊ทธ๋ฌ๋ ํ๋ผ๋ฏธ์ค, ํ์์์ ๋๋ ๋ค์ดํฐ๋ธ ์ด๋ฒคํธ ํธ๋ค๋ฌ์ ์ ๋ฐ์ดํธ๋ ๋ฐฐ์น๋์ง ์์์ต๋๋ค. React 18์ ์ถ์ฒ์ ๊ด๊ณ์์ด ๋ชจ๋ ์ํ ์ ๋ฐ์ดํธ๋ฅผ ์๋์ผ๋ก ๋ฐฐ์นํ์ฌ, ์ฌ๋ ๋๋ง ํ์๋ฅผ ํฌ๊ฒ ์ค์ด๊ณ ์ฑ๋ฅ์ ํฅ์์ํต๋๋ค. ์ด๋ ์ ์ฒด์ ์ธ ๋ ๋๋ง ์์ ์ ์ค์ฌ ํ๋ ์ ์๊ฐ ์์ฐ์ ์๋ฌต์ ์ผ๋ก ๋์์ ์ค๋๋ค.
์ด๋ฌํ ๊ธฐ๋ฅ๋ค์ ๊ธ๋ก๋ฒ ์ ํ๋ฆฌ์ผ์ด์ ์ ๊ตฌ์ถํ๋ ๋ฐ ์์ด ๊ฒ์ ์ฒด์ธ์ ์ ๋๋ค. ์ ๋์ญํญ ์ง์ญ์ ์ฌ์ฉ์๋ ์ค์ผ์ค๋ฌ๊ฐ ์ ๋ฐ์ดํธ๊ฐ ์ ์ฉ๋๋ ์์ ๊ณผ ๋ฐฉ์์ ์ง๋ฅ์ ์ผ๋ก ๊ด๋ฆฌํ๋ฏ๋ก ๋ ๋ถ๋๋ฌ์ด ํ์๊ณผ ์ํธ์์ฉ์ ๊ฒฝํํ ์ ์์ต๋๋ค.
๋์์ฑ ๋ ๋๋ง์ผ๋ก ์ ํ๋ฆฌ์ผ์ด์ ์ต์ ํํ๊ธฐ ์ํ ์ ๋ต
React์ ์ค์ผ์ค๋ฌ๊ฐ ๋ง์ ํ๋ ์ผ์ ์ฒ๋ฆฌํ์ง๋ง, ๊ฐ๋ฐ์๋ค์ ์ ํ๋ฆฌ์ผ์ด์ ์ ๋์ฑ ์ต์ ํํ๊ณ ์ ์ธ๊ณ์ ์ผ๋ก ์ ์๋ํ๋๋ก ๋ณด์ฅํ๊ธฐ ์ํ ์ ๋ต์ ์ฌ์ฉํด์ผ ํฉ๋๋ค.
1. ๋น์ฉ์ด ๋ง์ด ๋๋ ๊ณ์ฐ ์๋ณ ๋ฐ ๋ถ๋ฆฌ
์ฒซ ๋ฒ์งธ ๋จ๊ณ๋ ๊ณ์ฐ ๋น์ฉ์ด ๋ง์ด ๋๋ ์ปดํฌ๋ํธ๋ ์์ ์ ์๋ณํ๋ ๊ฒ์ ๋๋ค. React ๊ฐ๋ฐ์ ๋๊ตฌ ํ๋กํ์ผ๋ฌ์ ๊ฐ์ ๋๊ตฌ๋ ์ฑ๋ฅ ๋ณ๋ชฉ ํ์์ ์ ํํ ์ฐพ์๋ด๋ ๋ฐ ๋งค์ฐ ์ ์ฉํฉ๋๋ค.
์คํ ๊ฐ๋ฅํ ํต์ฐฐ: ์ผ๋จ ์๋ณ๋๋ฉด, ์ปดํฌ๋ํธ์๋ React.memo๋ฅผ, ๊ฐ์๋ useMemo๋ฅผ ์ฌ์ฉํ์ฌ ๋น์ฉ์ด ๋ง์ด ๋๋ ๊ณ์ฐ์ ๋ฉ๋ชจ์ด์ ์ด์
ํ๋ ๊ฒ์ ๊ณ ๋ คํด ๋ณด์ธ์. ๊ทธ๋ฌ๋ ์ ์คํด์ผ ํฉ๋๋ค. ๊ณผ๋ํ ๋ฉ๋ชจ์ด์ ์ด์
์ ์ค๋ฒํค๋๋ฅผ ์ ๋ฐํ ์๋ ์์ต๋๋ค.
2. startTransition๊ณผ useDeferredValue๋ฅผ ์ ์ ํ๊ฒ ํ์ฉ
์ด๋ฌํ ๋์์ฑ ๊ธฐ๋ฅ๋ค์ ์ค์ํ์ง ์์ ์ ๋ฐ์ดํธ๋ฅผ ๊ด๋ฆฌํ๋ ๋ฐ ๊ฐ์ฅ ์ข์ ์น๊ตฌ์ ๋๋ค.
์์: ์๋ง์ ์์ ฏ์ด ์๋ ๋์๋ณด๋๋ฅผ ์๊ฐํด ๋ณด์ธ์. ์ฌ์ฉ์๊ฐ ํ ์์ ฏ ๋ด์์ ํ
์ด๋ธ์ ํํฐ๋งํ๋ค๋ฉด, ๊ทธ ํํฐ๋ง ์์
์ ๊ณ์ฐ ์ง์ฝ์ ์ผ ์ ์์ต๋๋ค. ์ ์ฒด ๋์๋ณด๋๋ฅผ ์ฐจ๋จํ๋ ๋์ , ํํฐ๋ง์ ํธ๋ฆฌ๊ฑฐํ๋ ์ํ ์
๋ฐ์ดํธ๋ฅผ startTransition์ผ๋ก ๊ฐ์ธ์ธ์. ์ด๋ ๊ฒ ํ๋ฉด ํ
์ด๋ธ์ด ํํฐ๋ง๋๋ ๋์ ์ฌ์ฉ์๊ฐ ๋ค๋ฅธ ์์ ฏ๊ณผ ๊ณ์ ์ํธ์์ฉํ ์ ์์ต๋๋ค.
์์ (๊ธ๋ก๋ฒ ์ปจํ
์คํธ): ๋ค๊ตญ์ ์ ์์๊ฑฐ๋ ์ฌ์ดํธ์๋ ํํฐ๋ฅผ ์ ์ฉํ๋ ๋ฐ ์๊ฐ์ด ๊ฑธ๋ฆด ์ ์๋ ์ํ ๋ชฉ๋ก ํ์ด์ง๊ฐ ์์ ์ ์์ต๋๋ค. ํํฐ ์
๋ฐ์ดํธ์ startTransition์ ์ฌ์ฉํ๋ฉด ํ์์ด๋ "์ฅ๋ฐ๊ตฌ๋์ ๋ด๊ธฐ" ๋ฒํผ๊ณผ ๊ฐ์ ๋ค๋ฅธ UI ์์๊ฐ ๋ฐ์์ฑ์ ์ ์งํ์ฌ ๋๋ฆฐ ์ฐ๊ฒฐ์ด๋ ์ฑ๋ฅ์ด ๋ฎ์ ๊ธฐ๊ธฐ๋ฅผ ์ฌ์ฉํ๋ ์ฌ์ฉ์์๊ฒ ๋ ๋์ ๊ฒฝํ์ ์ ๊ณตํฉ๋๋ค.
3. ์ปดํฌ๋ํธ๋ฅผ ์๊ณ ์ง์ค์ ์ผ๋ก ์ ์ง
๋ ์๊ณ ์ง์ค๋ ์ปดํฌ๋ํธ๋ ์ค์ผ์ค๋ฌ๊ฐ ๊ด๋ฆฌํ๊ธฐ ๋ ์ฝ์ต๋๋ค. ์ปดํฌ๋ํธ๊ฐ ์์ผ๋ฉด ๋ ๋๋ง ์๊ฐ์ด ์ผ๋ฐ์ ์ผ๋ก ๋ ์งง์์ ธ ํ๋ ์ ์์ฐ์ ๋ง์ถ๊ธฐ ์ฌ์์ง๋๋ค.
์คํ ๊ฐ๋ฅํ ํต์ฐฐ: ํฌ๊ณ ๋ณต์กํ ์ปดํฌ๋ํธ๋ฅผ ๋ ์๊ณ ์ฌ์ฌ์ฉ ๊ฐ๋ฅํ ์ปดํฌ๋ํธ๋ก ๋ถํดํ์ธ์. ์ด๋ ์ฑ๋ฅ์ ํฅ์์ํฌ ๋ฟ๋ง ์๋๋ผ ์ฝ๋ ์ ์ง๋ณด์์ฑ๊ณผ ๊ธ๋ก๋ฒ ๊ฐ๋ฐํ ์ ์ฒด์ ์ฌ์ฌ์ฉ์ฑ์ ํฅ์์ํต๋๋ค.
4. ๋ฐ์ดํฐ ๊ฐ์ ธ์ค๊ธฐ ๋ฐ ์ํ ๊ด๋ฆฌ ์ต์ ํ
๋ฐ์ดํฐ๋ฅผ ๊ฐ์ ธ์ค๊ณ ๊ด๋ฆฌํ๋ ๋ฐฉ์์ ๋ ๋๋ง ์ฑ๋ฅ์ ํฐ ์ํฅ์ ๋ฏธ์น ์ ์์ต๋๋ค. ๋นํจ์จ์ ์ธ ๋ฐ์ดํฐ ๊ฐ์ ธ์ค๊ธฐ๋ ๋ถํ์ํ ์ฌ๋ ๋๋ง์ด๋ ๋์์ ์ฒ๋ฆฌ๋๋ ๋ง์ ์์ ๋ฐ์ดํฐ๋ก ์ด์ด์ง ์ ์์ต๋๋ค.
์คํ ๊ฐ๋ฅํ ํต์ฐฐ: ํ์ด์ง๋ค์ด์ , ์ง์ฐ ๋ก๋ฉ, ๋ฐ์ดํฐ ์ ๊ทํ์ ๊ฐ์ ํจ์จ์ ์ธ ๋ฐ์ดํฐ ๊ฐ์ ธ์ค๊ธฐ ์ ๋ต์ ๊ตฌํํ์ธ์. React Query๋ Apollo Client์ ๊ฐ์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ ์๋ฒ ์ํ๋ฅผ ํจ๊ณผ์ ์ผ๋ก ๊ด๋ฆฌํ์ฌ ์ปดํฌ๋ํธ์ ์ค์ผ์ค๋ฌ์ ๋ถ๋ด์ ์ค์ด๋ ๋ฐ ๋์์ด ๋ ์ ์์ต๋๋ค.
5. ์ฝ๋ ๋ถํ ๋ฐ ์ง์ฐ ๋ก๋ฉ
๋๊ท๋ชจ ์ ํ๋ฆฌ์ผ์ด์ , ํนํ ๋์ญํญ์ด ์ ์ฝ์ด ๋ ์ ์๋ ๊ธ๋ก๋ฒ ์ฌ์ฉ์๋ฅผ ๋์์ผ๋ก ํ๋ ๊ฒฝ์ฐ ์ฝ๋ ๋ถํ ๊ณผ ์ง์ฐ ๋ก๋ฉ์ ํ์์ ์ ๋๋ค. ์ด๋ ์ฌ์ฉ์๊ฐ ํ์ฌ ๋ณด๊ธฐ์ ํ์ํ ์๋ฐ์คํฌ๋ฆฝํธ ์ฝ๋๋ง ๋ค์ด๋ก๋ํ๋๋ก ๋ณด์ฅํฉ๋๋ค.
์์: ๋ณต์กํ ๋ณด๊ณ ๋๊ตฌ์๋ ๋ค์ํ ๋ชจ๋์ด ์์ ์ ์์ต๋๋ค. React.lazy์ Suspense๋ฅผ ์ฌ์ฉํ์ฌ ์ด๋ฌํ ๋ชจ๋์ ํ์์ ๋ฐ๋ผ ๋ก๋ํ ์ ์์ต๋๋ค. ์ด๋ ์ด๊ธฐ ๋ก๋ ์๊ฐ์ ์ค์ด๊ณ ์ค์ผ์ค๋ฌ๊ฐ ์ ํ๋ฆฌ์ผ์ด์
์ ๋ณด์ด๋ ๋ถ๋ถ์ ๋จผ์ ๋ ๋๋งํ๋ ๋ฐ ์ง์คํ ์ ์๊ฒ ํฉ๋๋ค.
6. ํ๋กํ์ผ๋ง ๋ฐ ๋ฐ๋ณต์ ์ธ ์ต์ ํ
์ฑ๋ฅ ์ต์ ํ๋ ์ง์์ ์ธ ๊ณผ์ ์ ๋๋ค. ํนํ ์๋ก์ด ๊ธฐ๋ฅ์ ๋์ ํ๊ฑฐ๋ ์ค์ํ ๋ณ๊ฒฝ์ ํ ํ์๋ ์ ๊ธฐ์ ์ผ๋ก ์ ํ๋ฆฌ์ผ์ด์ ์ ํ๋กํ์ผ๋งํ์ธ์.
์คํ ๊ฐ๋ฅํ ํต์ฐฐ: ํ๋ก๋์ ๋น๋(๋๋ ํ๋ก๋์ ์ ๋ชจ๋ฐฉํ ์คํ ์ด์ง ํ๊ฒฝ)์์ React ๊ฐ๋ฐ์ ๋๊ตฌ ํ๋กํ์ผ๋ฌ๋ฅผ ์ฌ์ฉํ์ฌ ์ฑ๋ฅ ์ ํ๋ฅผ ์๋ณํ์ธ์. ๋ ๋๋ง ์ค ์๊ฐ์ด ์ด๋์์ ์๋น๋๋์ง, ๊ทธ๋ฆฌ๊ณ ์ค์ผ์ค๋ฌ๊ฐ ํด๋น ์์ ์ ์ด๋ป๊ฒ ๊ด๋ฆฌํ๋์ง ์ดํดํ๋ ๋ฐ ์ง์คํ์ธ์.
๊ธ๋ก๋ฒ ๊ณ ๋ ค์ฌํญ ๋ฐ ๋ชจ๋ฒ ์ฌ๋ก
๊ธ๋ก๋ฒ ์ฌ์ฉ์๋ฅผ ์ํ ์ ํ๋ฆฌ์ผ์ด์ ์ ๊ตฌ์ถํ ๋ ํ๋ ์ ์๊ฐ ์์ฐ ๊ด๋ฆฌ๋ ๋์ฑ ์ค์ํด์ง๋๋ค. ์ฌ์ฉ์ ํ๊ฒฝ์ ๋ค์์ฑ์ ์ฑ๋ฅ์ ๋ํ ์ ์ ์ ์ธ ์ ๊ทผ์ ์๊ตฌํฉ๋๋ค.
1. ๋คํธ์ํฌ ์ง์ฐ ์๊ฐ ๋ฐ ๋์ญํญ
์ธ๊ณ ๊ฐ์ง์ ์ฌ์ฉ์๋ค์ ๋งค์ฐ ๋ค๋ฅธ ๋คํธ์ํฌ ์กฐ๊ฑด์ ๊ฒฝํํ ๊ฒ์ ๋๋ค. ๋น๋ฒํ๊ณ ํฐ ๋ฐ์ดํฐ ์ ์ก์ ํฌ๊ฒ ์์กดํ๋ ์ ํ๋ฆฌ์ผ์ด์ ์ ์ ๋์ญํญ ์ง์ญ์์ ์ฑ๋ฅ์ด ์ ํ๋ ๊ฒ์ ๋๋ค.
๋ชจ๋ฒ ์ฌ๋ก: ๋ฐ์ดํฐ ํ์ด๋ก๋๋ฅผ ์ต์ ํํ๊ณ , ์บ์ฑ ๋ฉ์ปค๋์ฆ์ ํ์ฉํ๋ฉฐ, ์ ์ ํ ๊ฒฝ์ฐ ์คํ๋ผ์ธ ์ฐ์ ์ ๋ต์ ๊ณ ๋ คํ์ธ์. ๋น์ฉ์ด ๋ง์ด ๋๋ ํด๋ผ์ด์ธํธ ์ธก ๊ณ์ฐ์ ์ง์์ ์ธ ์๋ฒ ํต์ ์ ์์กดํ๊ธฐ๋ณด๋ค ์ค์ผ์ค๋ฌ์ ์ํด ํจ์จ์ ์ผ๋ก ์ฒ๋ฆฌ๋๋๋ก ํ์ธ์.
2. ๊ธฐ๊ธฐ ์ฑ๋ฅ
์ ์ธ๊ณ์ ์ผ๋ก ์ฌ์ฉ๋๋ ๊ธฐ๊ธฐ์ ๋ฒ์๋ ๊ณ ๊ธ ์ค๋งํธํฐ๊ณผ ๋ฐ์คํฌํฑ์์๋ถํฐ ๊ตฌํ์ด๊ณ ์ฑ๋ฅ์ด ๋ฎ์ ์ปดํจํฐ์ ํ๋ธ๋ฆฟ์ ์ด๋ฅด๊ธฐ๊น์ง ๊ทน์ ์ผ๋ก ๋ค์ํฉ๋๋ค.
๋ชจ๋ฒ ์ฌ๋ก: ์ ์ง์ ๊ธฐ๋ฅ ์ ํ(graceful degradation)๋ฅผ ์ผ๋์ ๋๊ณ ์ค๊ณํ์ธ์. ์ฑ๋ฅ์ด ๋ฎ์ ๊ธฐ๊ธฐ์์๋ ์ ํ๋ฆฌ์ผ์ด์ ์ด ์ฌ์ฉ ๊ฐ๋ฅํ๊ณ ๋ฐ์์ฑ์ ์ ์งํ๋๋ก ๋์์ฑ ๊ธฐ๋ฅ์ ์ฌ์ฉํ์ธ์. ํ์์ ์ด๊ฑฐ๋ ๋ค์ํ ๊ธฐ๊ธฐ์์ ์ฑ๋ฅ ํ ์คํธ๋ฅผ ์ฒ ์ ํ ๊ฑฐ์น์ง ์์ ํ, ๊ณ์ฐ๋์ด ๋ง์ ์ ๋๋ฉ์ด์ ์ด๋ ํจ๊ณผ๋ ํผํ์ธ์.
3. ๊ตญ์ ํ(i18n) ๋ฐ ํ์งํ(l10n)
์ค์ผ์ค๋ฌ์ ์ง์ ์ ์ธ ๊ด๋ จ์ ์์ง๋ง, ์ ํ๋ฆฌ์ผ์ด์ ์ ๊ตญ์ ํํ๊ณ ํ์งํํ๋ ๊ณผ์ ์์ ์ฑ๋ฅ ๊ณ ๋ ค์ฌํญ์ด ๋ฐ์ํ ์ ์์ต๋๋ค. ํฐ ๋ฒ์ญ ํ์ผ์ด๋ ๋ณต์กํ ์์ ๋ก์ง์ ๋ ๋๋ง ์ค๋ฒํค๋๋ฅผ ์ฆ๊ฐ์ํฌ ์ ์์ต๋๋ค.
๋ชจ๋ฒ ์ฌ๋ก: i18n/l10n ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ต์ ํํ๊ณ ๋์ ์ผ๋ก ๋ก๋๋๋ ๋ฒ์ญ์ด ํจ์จ์ ์ผ๋ก ์ฒ๋ฆฌ๋๋๋ก ํ์ธ์. ์ค์ผ์ค๋ฌ๋ ์ฆ์ ๋ณด์ด์ง ์๋ ํ์งํ๋ ์ฝํ ์ธ ์ ๋ ๋๋ง์ ์ง์ฐ์ํด์ผ๋ก์จ ๋์์ ์ค ์ ์์ต๋๋ค.
4. ๋ค์ํ ํ๊ฒฝ์์์ ํ ์คํธ
์ค์ ๊ธ๋ก๋ฒ ์กฐ๊ฑด์ ์๋ฎฌ๋ ์ด์ ํ๋ ํ๊ฒฝ์์ ์ ํ๋ฆฌ์ผ์ด์ ์ ํ ์คํธํ๋ ๊ฒ์ด ์ค์ํฉ๋๋ค.
๋ชจ๋ฒ ์ฌ๋ก: ๋ธ๋ผ์ฐ์ ๊ฐ๋ฐ์ ๋๊ตฌ๋ฅผ ์ฌ์ฉํ์ฌ ๋ค์ํ ๋คํธ์ํฌ ์กฐ๊ฑด๊ณผ ๊ธฐ๊ธฐ ์ ํ์ ์๋ฎฌ๋ ์ด์ ํ์ธ์. ๊ฐ๋ฅํ๋ค๋ฉด, ๋ค์ํ ์ง๋ฆฌ์ ์์น์ ๋ค๋ฅธ ํ๋์จ์ด ๊ตฌ์ฑ์ ๊ฐ์ง ๊ฐ์ธ๋ค๊ณผ ์ฌ์ฉ์ ํ ์คํธ๋ฅผ ์ํํ์ธ์.
React ๋ ๋๋ง์ ๋ฏธ๋
๋์์ฑ ๋ ๋๋ง์ ๋ํ React์ ์ฌ์ ์ ์ฌ์ ํ ์งํํ๊ณ ์์ต๋๋ค. ์ํ๊ณ๊ฐ ์ฑ์ํ๊ณ ๋ ๋ง์ ๊ฐ๋ฐ์๊ฐ ์ด๋ฌํ ์๋ก์ด ํจ๋ฌ๋ค์์ ๋ฐ์๋ค์์ ๋ฐ๋ผ, ๋ ๋๋ง ์ฑ๋ฅ์ ๊ด๋ฆฌํ๊ธฐ ์ํ ํจ์ฌ ๋ ์ ๊ตํ ๋๊ตฌ์ ๊ธฐ์ ์ ๊ธฐ๋ํ ์ ์์ต๋๋ค.
ํ๋ ์ ์๊ฐ ์์ฐ ๊ด๋ฆฌ์ ๋ํ ๊ฐ์กฐ๋ ๋ชจ๋ ์ฌ์ฉ์์๊ฒ, ์ด๋์์๋ ๊ณ ํ์ง์ ์ฌ์ฉ์ ๊ฒฝํ์ ์ ๊ณตํ๋ ค๋ React์ ์ฝ์์ ์ฆ๋ช ํฉ๋๋ค. ๋์์ฑ ๋ ๋๋ง๊ณผ ๊ทธ ์ค์ผ์ค๋ง ๋ฉ์ปค๋์ฆ์ ์๋ฆฌ๋ฅผ ์ดํดํ๊ณ ์ ์ฉํจ์ผ๋ก์จ, ๊ฐ๋ฐ์๋ค์ ๊ธฐ๋ฅ์ด ํ๋ถํ ๋ฟ๋ง ์๋๋ผ ์ฌ์ฉ์์ ์์น๋ ๊ธฐ๊ธฐ์ ๊ด๊ณ์์ด ํ์ํ๊ฒ ์ฑ๋ฅ์ด ์ข๊ณ ๋ฐ์์ฑ์ด ๋ฐ์ด๋ ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ง๋ค ์ ์์ต๋๋ค.
๊ฒฐ๋ก
์ ๊ตํ ํ๋ ์ ์๊ฐ ์์ฐ ๊ด๋ฆฌ๋ฅผ ๊ฐ์ถ React์ ๋์์ฑ ๋ ๋๋ง ์ค์ผ์ค๋ฌ๋ ์ฑ๋ฅ ์ข์ ์น ์ ํ๋ฆฌ์ผ์ด์ ์ ๊ตฌ์ถํ๋ ๋ฐ ์์ด ์ค์ํ ๋์ฝ์ ์๋ฏธํฉ๋๋ค. ์์ ์ ๋ถํ ํ๊ณ , ์ ๋ฐ์ดํธ์ ์ฐ์ ์์๋ฅผ ์ ํ๋ฉฐ, ์ ํ ๋ฐ ์ง์ฐ๋ ๊ฐ๊ณผ ๊ฐ์ ๊ธฐ๋ฅ์ ํ์ฑํํจ์ผ๋ก์จ React๋ ๋ณต์กํ ๋ ๋๋ง ์์ ์ค์๋ ์ฌ์ฉ์ ์ธํฐํ์ด์ค๊ฐ ๋ฐ์์ฑ์ ์ ์งํ๋๋ก ๋ณด์ฅํฉ๋๋ค.
๊ธ๋ก๋ฒ ์ฌ์ฉ์์๊ฒ ์ด ๊ธฐ์ ์ ๋จ์ํ ์ต์ ํ๊ฐ ์๋๋ผ ํ์์ ๋๋ค. ์ด๋ ๋ค์ํ ๋คํธ์ํฌ ์กฐ๊ฑด, ๊ธฐ๊ธฐ ์ฑ๋ฅ, ๊ทธ๋ฆฌ๊ณ ์ฌ์ฉ์ ๊ธฐ๋์ ์ํด ์์ฑ๋ ๊ฒฉ์ฐจ๋ฅผ ๋ฉ์๋๋ค. ๋์์ฑ ๊ธฐ๋ฅ์ ์ ๊ทน์ ์ผ๋ก ํ์ฉํ๊ณ , ๋ฐ์ดํฐ ์ฒ๋ฆฌ๋ฅผ ์ต์ ํํ๋ฉฐ, ํ๋กํ์ผ๋ง๊ณผ ํ ์คํธ๋ฅผ ํตํด ์ฑ๋ฅ์ ๊ณ์ ์ง์คํจ์ผ๋ก์จ, ๊ฐ๋ฐ์๋ค์ ์ ์ธ๊ณ ์ฌ์ฉ์๋ฅผ ๊ธฐ์๊ฒ ํ๋ ์ง์ ์ผ๋ก ๋ฐ์ด๋ ์ฌ์ฉ์ ๊ฒฝํ์ ๋ง๋ค ์ ์์ต๋๋ค.
React์ ์ค์ผ์ค๋ฌ๋ฅผ ๋ง์คํฐํ๋ ๊ฒ์ ํ๋ ์น ๊ฐ๋ฐ์ ๋ชจ๋ ์ ์ฌ๋ ฅ์ ๋ฐํํ๋ ์ด์ ์ ๋๋ค. ๋์์ฑ์ ๋ฐ์๋ค์ด๊ณ , ๋ชจ๋์๊ฒ ๋น ๋ฅด๊ณ , ๋ถ๋๋ฝ๊ณ , ์ ๊ทผ ๊ฐ๋ฅํ ์ ํ๋ฆฌ์ผ์ด์ ์ ๊ตฌ์ถํ์ธ์.